package 回溯算法;

import java.util.ArrayList;
import java.util.List;

/**
 * @Classname subsets78v1
 * @Description TODO
 * @Date 2022/2/17 22:39
 * @Created by xjl
 */
public class subsets78v1 {

    public List<List<Integer>> subsets(int[] nums) {
        List<List<Integer>> lists = new ArrayList<>();
        //先添加一个空的集合
        lists.add(new ArrayList<>());
        for (int num : nums) {
            //每遍历一个元素就在之前子集中的每个集合追加这个元素，让他变成新的子集
            for (int i = 0, j = lists.size(); i < j; i++) {
                List<Integer> list = new ArrayList<>(lists.get(i));
                list.add(num);
                lists.add(list);
            }
        }
        return lists;
    }
}
